"""author: songzhiqiang
   data: 2021/11/24
   project: zuoye2
"""
#############################时间回退##################
# import datetime
# import time
# num = int(input("请输入向回溯的天数"))
# b = datetime.datetime.utcfromtimestamp(time.time())
# print(b)
# timeago = b - datetime.timedelta(days=num)
# print(timeago)
# print(time.localtime())
# print(time.strftime("%b/%d/%Y %H:%M",time.localtime()))


##############输出指定文件夹########################
# import os
# a = input("请输入文件夹")
# os.system(f"dir{a}")

###################列表去重#####################

# lst = [5, 1, 5, 8, 4, 9, 6, 1, 7, 4, 36, 4]
# lst2 = []
# for i in lst:
#     if i not in lst2:
#         lst2.append(i)
# print(sorted(lst2))

################在函数内部修改全局变量############

# global

############如何跨模块共享全局变量#############

#将模块打包并发布

################python基本数据类型##################

# Number（数字）
# String（字符串）
# List（列表）
# Tuple（元组）
# Set（集合）
# Dictionary（字典）

###############随机数#####################

# import random
#
# print(random.randint(1,10))#随机整数
# print(random.uniform(1,10))#随机小数1，10
# print(random.random())#随机小数0，1

###################可变不可变数据类型########################

# 不可变数据（3 个）：Number（数字）、String（字符串）、Tuple（元组）；
# 可变数据（3 个）：List（列表）、Dictionary（字典）、Set（集合）。


#############a += 1 和 a = a + 1 的区别###################


#没区别

#########pep8的五个表准#############
# 每个 import 语句只导入一个模块，尽量避免一次导入多个模块
# 不要在行尾添加分号，也不要用分号将两条命令放在同一行
# 建议每行不超过 80 个字符，如果超过，建议使用小括号将多行内容隐式的连接起来，而不推荐使用反斜杠 \ 进行连接。例如，如果一个字符串文本无法实现一行完全显示，则可以使用小括号将其分开显示，
# 使用必要的空行可以增加代码的可读性，通常在顶级定义（如函数或类的定义）之间空两行，而方法定义之间空一行，另外在用于分隔某些功能的位置也可以空一行。
# 通常情况下，在运算符两侧、函数参数之间以及逗号两侧，都建议使用空格进行分隔。


###########给定一个字符串,找出重复的字符#############
#
# str = "asidflsjflkjasldkf"
# lis = []
# for i in str:
#     if i not in lis:
#         lis.append(i)
#     else:
#         print(i)
#         break

#########描述深拷贝和浅拷贝##############
# 只发生在可迭代对象嵌套的情况
# 浅拷贝拷贝一层地址 浅拷贝拷贝多层

###########简述python的内存机制#########

# 以引用计数为主，分代回收、标记清除为辅的垃圾回收方式，
# 以及对小整型进行缓存和简单字符串驻留的内存池机制

###############快速排序######################
#
# def a(list, l, r):
#     i = l
#     j = r
#     flag =list[l]
#     while i < j:
#         while i < j and list[j] > flag:
#             j -= 1
#         while i < j and list[i] <= flag:
#             i += 1
#         if i < j:
#             list[i], list[j] = list[j], list[i]
#     list[l], list[j] = list[j], list[l]
#     return j
#
#
# def quicksort(list, l, r):
#     if l > r:
#         return
#     flag_index = a(list, l, r)
#     quicksort(list, l, flag_index - 1)
#     quicksort(list, flag_index + 1, r)
#
#
# b = [11, 32, 3, 4, 45, 54, 64, 23, 45, 67, 22, 56, 67, 44, 23, 12]
#
# quicksort(b, 0, len(b) - 1)
# print(b)
#

#########################冒泡排序#######################

# def sort(lst):
#     for i in range(0,len(lst)):
#         for i in range(0,len(lst) - 1 - i):
#             if lst[i] > lst[i+1]:
#                 lst[i],lst[i+1] = lst[i+1],lst[i]
#     print(lst)
#
# lst = [22, 88 ,5 ,69 ,4 ,28, 11]
# sort(lst)

# lst = [22, 88, 5, 69, 4, 28, 11]
# lst = [1, 2, 3, 4, 5]
# for i in range(0, len(lst)):
#     swapped = False
#     print(lst)
#     for i in range(0, len(lst) - 1 - i):
#         if lst[i] > lst[i + 1]:
#             swapped = True
#             lst[i], lst[i + 1] = lst[i + 1], lst[i]
#     if not swapped:
#         break
#     print(lst)




###################验证字符串是否属于回文####################

# str = input("请输入一个字符串")
# a = reversed(list(str))
# if list(str) == list(a):
#     print("这是一个回文")
# else:
#     print("这不是回文")

#
# def bubble_sort(collection):
#
#     length = len(collection)
#     for i in range(length-1):
#         swapped = False
#         print(collection)
#         for j in range(length-1-i):
#             if collection[j] > collection[j+1]:
#                 swapped = True
#                 collection[j], collection[j+1] = collection[j + 1], collection[j]
#         if not swapped: break  # Stop iteration if the collection is sorted.
#     return collection
#
#
#
# unsorted = [3,4,2,1,5,6,7,8]
# print(bubble_sort(unsorted))
#
print(print("4"))